package com.luxsoft.siipap.em.replica.importadores.parches;

import java.math.BigDecimal;
import java.sql.Types;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.SqlParameterValue;

import com.luxsoft.siipap.model.Periodo;
import com.luxsoft.siipap.service.ServiceLocator2;
import com.luxsoft.siipap.ventas.model.Venta;

/**
 * Actualiza de forma correcta el importe corte y maniobras de las ventas
 * desde Oracle usando el SiipapId
 * 
 * @author Ruben Cancino Ramos
 *
 */
public class AjustaImporteCorteMoEnVentas {
	
	public static void run(final Periodo p){
		String sql="select VENTA_ID,IMPCORTES+IMPMANIOBRAS as CARGOS from SW_VENTAS where " +
				" fecha between ? and ? and IMPCORTES+IMPMANIOBRAS>0 ";
		Object[] params=new Object[]{
				new SqlParameterValue(Types.DATE,p.getFechaInicial()),
				new SqlParameterValue(Types.DATE,p.getFechaFinal())
		};
		List<Map<String, Object>> rows=ServiceLocator2.getAnalisisJdbcTemplate().queryForList(sql, params);
		for (Map<String, Object> map : rows) {
			System.out.println(map);
			Number id=(Number)map.get("VENTA_ID");
			BigDecimal cargos=(BigDecimal)map.get("CARGOS");
			
			Venta v=ServiceLocator2.getVentaDao().buscarPorOracleId(id.longValue());
			v.setCargos(cargos);
			v.setDescCargo("CORTES-MO");
			ServiceLocator2.getVentasManager().salvar(v);
		}
		
		
	}
	
	public static void main(String[] args) {
		Periodo p=Periodo.getPeriodoEnUnMes(0, 2009);
		run(p);
	}

}
